/**
 * jims
 */
package com.jims.master.modules.csm.entity;

import com.jims.master.common.persistence.DataEntity;
import org.hibernate.validator.constraints.Length;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 消耗品发放生申请Entity
 * @author zhuq
 * @version 2017-03-18
 */
public class ExpProvideApplication extends DataEntity<ExpProvideApplication> {

    private static final long serialVersionUID = 1L;
    private String expCode;		// 消耗品编码
    private String infoId;		// 申请时infoId
    private String expInfoId;   //发放时infoId
    private String storageIn;		// 请领单位
    private String storageOut;		// 发放单位
    private Integer packageNum;		// 包装数量
    private String packageSpec;		// 包装规格
    private String packageUnits;		// 包装单位
    private String minSpec;		// 最小规格
    private String minUnits;		// 最小单位
    private Double quantity;		// 申请数量（小包装）
    private Double auditQuantity;  //审核数量（小包装）
    private Double quantityOut;		// 已发放大包装库存量
    private String outFlag;    //发放标志(0 已申请; 1 已审核; 2 已发放)
    private String startDate;
    private String stopDate;
    private String firmId;

    private ExpStock expStock;
    private String storageName;
    private ExpInfo expInfo;  //消耗品信息
    private String expName;  //消耗品名称
    private String totalQuantity;//汇总总数量
    private String totalPrice;//汇总总价
    private List<ExpProvideApplication> expProvideApplicationList;

    public ExpProvideApplication() {
        super();
    }

    public ExpProvideApplication(String id){
        super(id);
    }
    @Transactional
    public String getTotalPrice() {
        return totalPrice;
    }
    @Transactional
    public void setTotalPrice(String totalPrice) {
        this.totalPrice = totalPrice;
    }
    @Transactional
    public String getTotalQuantity() {
        return totalQuantity;
    }
    @Transactional
    public void setTotalQuantity(String totalQuantity) {
        this.totalQuantity = totalQuantity;
    }

    @Length(min=1, max=32, message="消耗品编码长度必须介于 1 和 32 之间")
    public String getExpCode() {
        return expCode;
    }

    public void setExpCode(String expCode) {
        this.expCode = expCode;
    }

    @Length(min=1, max=64, message="expInfoId长度必须介于 1 和 64 之间")
    public String getInfoId() {
        return infoId;
    }

    public void setInfoId(String infoId) {
        this.infoId = infoId;
    }

    @Length(min=1, max=64, message="请领单位长度必须介于 1 和 64 之间")
    public String getStorageIn() {
        return storageIn;
    }

    public void setStorageIn(String storageIn) {
        this.storageIn = storageIn;
    }

    @Length(min=1, max=64, message="发放单位长度必须介于 1 和 64 之间")
    public String getStorageOut() {
        return storageOut;
    }

    public void setStorageOut(String storageOut) {
        this.storageOut = storageOut;
    }

    public Integer getPackageNum() {
        return packageNum;
    }

    public void setPackageNum(Integer packageNum) {
        this.packageNum = packageNum;
    }

    @Length(min=1, max=20, message="包装规格长度必须介于 1 和 20 之间")
    public String getPackageSpec() {
        return packageSpec;
    }

    public void setPackageSpec(String packageSpec) {
        this.packageSpec = packageSpec;
    }

    @Length(min=1, max=2, message="包装单位长度必须介于 1 和 2 之间")
    public String getPackageUnits() {
        return packageUnits;
    }

    public void setPackageUnits(String packageUnits) {
        this.packageUnits = packageUnits;
    }

    @Length(min=1, max=20, message="最小规格长度必须介于 1 和 20 之间")
    public String getMinSpec() {
        return minSpec;
    }

    public void setMinSpec(String minSpec) {
        this.minSpec = minSpec;
    }

    @Length(min=1, max=2, message="最小单位长度必须介于 1 和 2 之间")
    public String getMinUnits() {
        return minUnits;
    }

    public void setMinUnits(String minUnits) {
        this.minUnits = minUnits;
    }

    public Double getQuantity() {
        return quantity;
    }

    public void setQuantity(Double quantity) {
        this.quantity = quantity;
    }

    public Double getQuantityOut() {
        return quantityOut;
    }

    public void setQuantityOut(Double quantityOut) {
        this.quantityOut = quantityOut;
    }

    public ExpStock getExpStock() {
        return expStock;
    }

    public void setExpStock(ExpStock expStock) {
        this.expStock = expStock;
    }

    public List<ExpProvideApplication> getExpProvideApplicationList() {
        return expProvideApplicationList;
    }

    public void setExpProvideApplicationList(List<ExpProvideApplication> expProvideApplicationList) {
        this.expProvideApplicationList = expProvideApplicationList;
    }

    public String getStorageName() {
        return storageName;
    }

    public void setStorageName(String storageName) {
        this.storageName = storageName;
    }

    public ExpInfo getExpInfo() {
        return expInfo;
    }

    public void setExpInfo(ExpInfo expInfo) {
        this.expInfo = expInfo;
    }

    public String getExpName() {
        return expName;
    }

    public void setExpName(String expName) {
        this.expName = expName;
    }

    public Double getAuditQuantity() {
        return auditQuantity;
    }

    public void setAuditQuantity(Double auditQuantity) {
        this.auditQuantity = auditQuantity;
    }

    public String getExpInfoId() {
        return expInfoId;
    }

    public void setExpInfoId(String expInfoId) {
        this.expInfoId = expInfoId;
    }

    public String getOutFlag() {
        return outFlag;
    }

    public void setOutFlag(String outFlag) {
        this.outFlag = outFlag;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getStopDate() {
        return stopDate;
    }

    public void setStopDate(String stopDate) {
        this.stopDate = stopDate;
    }

    public String getFirmId() {
        return firmId;
    }

    public void setFirmId(String firmId) {
        this.firmId = firmId;
    }
}